package com.hb.trade.client.project;

import com.hb.core.pojo.project.file.dto.*;
import org.fzzn.core.model.msg.Message;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

/**
 * 招标文件评审项相关
 *
 * @author tian
 * @date 2022-4-13 10:35
 */
@FeignClient("hb-project")
public interface ReviewItemClient {


    /**
     * 查询评审项详情
     *
     * @param reviewItemFirstDto
     * @return org.fzzn.core.model.msg.Message<java.util.List < com.hb.core.pojo.project.file.dto.ReviewItemFirstDto>>
     * @author tian
     * @date 2022-4-13 10:39
     */
    @PostMapping("/reviewItem/selectReviewItem")
    Message<List<ReviewItemFirstDto>> selectReviewItem(@RequestBody ReviewItemFirstDto reviewItemFirstDto);


    /**
     * 编辑一级评审项
     *
     * @param reviewItemFirstDto
     * @return org.fzzn.core.model.msg.Message<java.lang.String>
     * @author tian
     * @date 2022-4-13 11:21
     */
    @PostMapping("/reviewItem/editReviewItem")
    Message<String> editReviewItem(@RequestBody ReviewItemFirstDto reviewItemFirstDto);


    /**
     * 查询二级评审项列表
     *
     * @param reviewItemSecondDto
     * @return org.fzzn.core.model.msg.Message<java.util.List < com.hb.core.pojo.project.file.dto.ReviewItemSecondDto>>
     * @author tian
     * @date 2022-4-13 11:26
     */
    @PostMapping("/reviewItem/selectReviewItemSecondList")
    Message<List<ReviewItemSecondDto>> selectReviewItemSecondList(@RequestBody ReviewItemSecondDto reviewItemSecondDto);



    /**
     * 保存，编辑二级评审项
     *
     * @param reviewItemSecondDto
     * @return org.fzzn.core.model.msg.Message<java.lang.String>
     * @author tian
     * @date 2022-4-13 11:30
     */
    @PostMapping("/reviewItem/editReviewItemSecond")
    Message<Long> editReviewItemSecond(@RequestBody ReviewItemSecondDto reviewItemSecondDto);


    /**
     * 删除二级评审项
     *
     * @param reviewItemSecondDto
     * @return org.fzzn.core.model.msg.Message<java.lang.String>
     * @author tian
     * @date 2022-4-13 11:30
     */
    @PostMapping("/reviewItem/deleteReviewItemSecond")
    Message<String> deleteReviewItemSecond(@RequestBody ReviewItemSecondDto reviewItemSecondDto);


    /**
     * 查询三级评审项列表
     *
     * @param reviewItemThirdDto
     * @return org.fzzn.core.model.msg.Message<java.util.List < com.hb.core.pojo.project.file.dto.ReviewItemThirdDto>>
     * @author tian
     * @date 2022-4-13 11:45
     */
    @PostMapping("/reviewItem/selectReviewItemThirdList")
    Message<List<ReviewItemThirdDto>> selectReviewItemThirdList(@RequestBody ReviewItemThirdDto reviewItemThirdDto);

    /**
     * 保存，编辑三级评审项
     *
     * @param reviewItemThirdDto
     * @return org.fzzn.core.model.msg.Message<java.lang.String>
     * @author tian
     * @date 2022-4-13 11:49
     */
    @PostMapping("/reviewItem/editReviewItemThird")
    Message<ReviewItemThirdDto> editReviewItemThird(@RequestBody ReviewItemThirdDto reviewItemThirdDto);




    /**
     * 删除三级评审项
     * @author tian
     * @date 2022-4-13 13:26
     * @param reviewItemThirdDto
     * @return org.fzzn.core.model.msg.Message<java.lang.String>
     */
    @PostMapping("/reviewItem/deleteReviewItemThird")
    Message<String> deleteReviewItemThird(@RequestBody ReviewItemThirdDto reviewItemThirdDto);
    /**
     * @param reviewEvaluationGenerateFormDTO:
     * @Description:生成表格(无表格记录先生成)
     * @Author: zhongdl
     * @Date:2022/4/19 10:58
     * @return: {@link Message< ReviewEvaluationGenerateFormDTO> }
     **/
    @PostMapping("/reviewEvaluationForm/generate")
    Message<List<ReviewEvaluationFormDTO>> generate(@RequestBody ReviewEvaluationGenerateFormDTO reviewEvaluationGenerateFormDTO);
    /**
     * @param reviewEvaluationFormDTO:
     * @Description:更新评标表格的生成状态
     * @Author: zhongdl
     * @Date:2022/4/20 15:25

     * @return: {@link org.fzzn.core.model.msg.Message<java.lang.Boolean> }
     **/
    @PostMapping("/reviewEvaluationForm/updateReviewEvaluationForm")
    Message<Boolean> updateReviewEvaluationForm(@RequestBody ReviewEvaluationFormDTO reviewEvaluationFormDTO);


    /**
     * @param firstReviewItemId:
     * @param sectionId:
     * @Description:生成表格(无表格记录先生成)
     * @Author: zhongdl
     * @Date:2022/4/19 10:58
     * @return: {@link Message< ReviewEvaluationGenerateFormDTO> }
     **/
    @PostMapping("/reviewEvaluationForm/preliminary")
    Message<List<ReviewItemSecondDto>> preliminary( @RequestParam Long sectionId);
    /**
     * @param firstReviewItemId:
     * @param sectionId:
     * @Description:详细评审个人
     * @Author: zhongdl
     * @Date:2022/4/20 15:46
     * @return: {@link org.fzzn.core.model.msg.Message<java.util.List<com.hb.core.pojo.project.file.dto.ReviewItemSecondDto>> }
     **/
    @PostMapping("/reviewEvaluationForm/detailedPersonal")
    Message<List<ReviewItemSecondDto>> detailedPersonal( @RequestParam Long sectionId);
    /**
     *
     * @Description:详细评审汇总
     * @Author: zhongdl
     * @Date:2022/4/20 17:14
     * @param firstReviewItemId:
     * @param sectionId:
     * @return: {@link Message< List< ReviewItemSecondDto>> }
     **/
    @PostMapping("/reviewEvaluationForm/detailedPersonalSummary")
    Message<List<ReviewItemSecondDto>> detailedPersonalSummary( @RequestParam Long sectionId);

    /**
     * @param firstReviewItemId:
     * @param sectionId:
     * @Description:报价评审
     * @Author: zhongdl
     * @Date:2022/4/20 21:20
     * @return: {@link org.fzzn.core.model.msg.Message<java.util.List<com.hb.core.pojo.project.file.dto.QuotationReviewExcelDTO>> }
     **/
    @PostMapping("/reviewEvaluationForm/quotationReview")
    Message<List<QuotationReviewExcelDTO>> quotationReview( @RequestParam Long sectionId);
    /**
     * @param sectionId:查询评分汇总
     * @Description:
     * @Author: zhongdl
     * @Date:2022/4/21 11:13
     * @return: {@link org.fzzn.core.model.msg.Message<java.util.List<com.hb.core.pojo.project.file.dto.ReviewItemSecondDto>> }
     **/
    @PostMapping("/reviewEvaluationForm/scoreSummary")
    Message<ScoreSummaryExcelDTO> scoreSummary(@RequestParam Long sectionId);
}
